package cn.stylefeng.guns.modular.biz.pojo.request;

import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.List;

/**
 * MES计量汇总单封装类
 *
 * @author 张朋飞
 * @since 2024/09/29 21:24
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class PrWeightSumOrderRequest extends BaseRequest {

    /**
     * 主键id
     */
    @NotNull(message = "主键id不能为空", groups = {edit.class, delete.class})
    @ChineseDescription("主键id")
    private Long wsoId;
    /**
     * 汇总单号
     */
    @NotBlank(message = "汇总单号不能为空", groups = {add.class, edit.class})
    @ChineseDescription("汇总单号")
    private String wtSumId;
    /**
     * 汇总日期
     */
    @ChineseDescription("汇总日期")
	private String sumDate;
    /**
     * 采购订单号
     */
    @NotBlank(message = "采购订单号不能为空", groups = {add.class, edit.class})
    @ChineseDescription("采购订单号")
    private String purOrderId;
    /**
     * 采购订单行项目号
     */
    @NotBlank(message = "采购订单行项目号不能为空", groups = {add.class, edit.class})
    @ChineseDescription("采购订单行项目号")
    private String purOrderItemId;
    /**
     * 物料编码
     */
    @NotBlank(message = "物料编码不能为空", groups = {add.class, edit.class})
    @ChineseDescription("物料编码")
    private String l4Matnr;
    /**
     * 供应商编码
     */
    @NotBlank(message = "供应商编码不能为空", groups = {add.class, edit.class})
    @ChineseDescription("供应商编码")
    private String supplyId;
    /**
     * 运输方式QY：汽运，HY:火运 YS:运输链）
     */
    @NotBlank(message = "运输方式QY：汽运，HY:火运 YS:运输链）不能为空", groups = {add.class, edit.class})
    @ChineseDescription("运输方式QY：汽运，HY:火运 YS:运输链）")
    private String transportMode;
    /**
     * 车数
     */
    @NotNull(message = "车数不能为空", groups = {add.class, edit.class})
    @ChineseDescription("车数")
    private BigDecimal vehNum;
    /**
     * 计量重量
     */
    @NotNull(message = "计量重量不能为空", groups = {add.class, edit.class})
    @ChineseDescription("计量重量")
    private BigDecimal weight;
    /**
     * 重量单位
     */
    @NotBlank(message = "重量单位不能为空", groups = {add.class, edit.class})
    @ChineseDescription("重量单位")
    private String wtUnit;
    /**
     * 样品编号
     */
    @NotBlank(message = "样品编号不能为空", groups = {add.class, edit.class})
    @ChineseDescription("样品编号")
    private String sampleId;
    /**
     * 发货地点/发站
     */
    @NotBlank(message = "发货地点/发站不能为空", groups = {add.class, edit.class})
    @ChineseDescription("发货地点/发站")
    private String deliverPlace;
    /**
     * 火运组批用的预报单
     */
    @NotBlank(message = "火运组批用的预报单不能为空", groups = {add.class, edit.class})
    @ChineseDescription("火运组批用的预报单")
    private String arrId;
    /**
     * 四级批次号
     */
    @NotBlank(message = "四级批次号不能为空", groups = {add.class, edit.class})
    @ChineseDescription("四级批次号")
    private String prueflos;

    /**
     * 批量删除用的id集合
     */
    @NotNull(message = "批量删除id集合不能为空", groups = batchDelete.class)
    @ChineseDescription("批量删除用的id集合")
    private List<Long> batchDeleteIdList;

    /**
     * 预报热值
     */
    @NotNull(message = "预报热值不能为空", groups = {add.class, edit.class})
    @ChineseDescription("预报热值")
    private String forecastQnetar;
    /**
     * 预报干基硫分
     */
    @NotNull(message = "预报干基硫分不能为空", groups = {add.class, edit.class})
    @ChineseDescription("预报干基硫分")
    private String forecastStd;


}